package com.ruoyi.wms.service;

import java.util.List;
import com.ruoyi.wms.domain.WmsOutboundRecord;

/**
 * 出库记录Service接口
 * 
 * @author ruoyi
 * @date 2024-01-01
 */
public interface IWmsOutboundRecordService 
{
    /**
     * 查询出库记录
     * 
     * @param recordId 出库记录主键
     * @return 出库记录
     */
    public WmsOutboundRecord selectWmsOutboundRecordById(Long recordId);

    /**
     * 查询出库记录列表
     * 
     * @param wmsOutboundRecord 出库记录
     * @return 出库记录集合
     */
    public List<WmsOutboundRecord> selectWmsOutboundRecordList(WmsOutboundRecord wmsOutboundRecord);

    /**
     * 根据出库单ID查询出库记录列表
     * 
     * @param orderId 出库单ID
     * @return 出库记录集合
     */
    public List<WmsOutboundRecord> selectWmsOutboundRecordByOrderId(Long orderId);

    /**
     * 根据明细ID查询出库记录列表
     * 
     * @param detailId 出库单明细ID
     * @return 出库记录集合
     */
    public List<WmsOutboundRecord> selectWmsOutboundRecordByDetailId(Long detailId);

    /**
     * 根据分配ID查询出库记录列表
     * 
     * @param allocationId 库存分配ID
     * @return 出库记录集合
     */
    public List<WmsOutboundRecord> selectWmsOutboundRecordByAllocationId(Long allocationId);

    /**
     * 新增出库记录
     * 
     * @param wmsOutboundRecord 出库记录
     * @return 结果
     */
    public int insertWmsOutboundRecord(WmsOutboundRecord wmsOutboundRecord);

    /**
     * 修改出库记录
     * 
     * @param wmsOutboundRecord 出库记录
     * @return 结果
     */
    public int updateWmsOutboundRecord(WmsOutboundRecord wmsOutboundRecord);

    /**
     * 批量删除出库记录
     * 
     * @param recordIds 需要删除的出库记录主键集合
     * @return 结果
     */
    public int deleteWmsOutboundRecordByIds(Long[] recordIds);

    /**
     * 删除出库记录信息
     * 
     * @param recordId 出库记录主键
     * @return 结果
     */
    public int deleteWmsOutboundRecordById(Long recordId);

    /**
     * 批量新增出库记录
     * 
     * @param recordList 出库记录列表
     * @return 结果
     */
    public int batchInsertWmsOutboundRecord(List<WmsOutboundRecord> recordList);
}